//报警列表初始化
layui.use(['layer', 'laydate', 'datatable', 'datatableButton', 'datatableHtml5', 'datatablePrint', 'datatableColVis', 'datatableSelect'], function () {
    var $ = layui.jquery,
        layer = layui.layer;
    var laydate = layui.laydate;

    var start = {
        min: laydate.now()
        , max: '2099-06-16 23:59:59'
        , istoday: false
        , choose: function (datas) {
            end.min = datas; //开始日选好后，重置结束日的最小日期
            end.start = datas //将结束日的初始值设定为开始日
        }
    };

    var end = {
        min: laydate.now()
        , max: '2099-06-16 23:59:59'
        , istoday: true
        , choose: function (datas) {
            start.max = datas; //结束日选好后，重置开始日的最大日期
        }
    };

    // oSort是排序类型数组, 'chinese-asc'是自己定义的类型的排序(*-asc || *-desc)名称
    // 插件应该会根据表格中的内容的类型(string, number, chinese)进行比较排序，
    // 如果以chinese类型来排序则用oSort['chinese-asc']和oSort['chinese-desc']的方法
    // oSort对应的function里面自定义比较方法
    $.fn.dataTableExt.oSort['chinese-asc'] = function (x, y) {
        //javascript自带的中文比较函数，具体用法可自行查阅了解
        return x.localeCompare(y);
    };

    $.fn.dataTableExt.oSort['chinese-desc'] = function (x, y) {
        return y.localeCompare(x);
    };
    // aTypes是插件存放表格内容类型的数组
    // reg赋值的正则表达式，用来判断是否是中文字符
    // 返回值push到aTypes数组，排序时扫描该数组，'chinese'则调用上面两个方法。返回null默认是'string'
    $.fn.dataTableExt.aTypes.push(
        function (sData) {
            var reg = /^[\u4e00-\u9fa5]{0,}$/;
            if (reg.test(sData)) {
                return 'chinese';
            }
            return null;
        }
    );
    $(document).ready(function () {
        vue.message_init();
        /*var myTable = $('#message').DataTable({
            //开启服务器模式
            "serverSide": true,
            "processing": false, //DataTables载入数据时，是否显示‘进度’提示
            "stateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
            "scrollCollapse": true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变
            "paginationType": "full_numbers", //详细分页组，可以支持直接跳转到某页
            "language": lang, //提示信息
            "autoWidth": false, //自适应宽度，
            "lengthMenu": [15, 30, 50],
            "stripeClasses": ["odd", "even"], //为奇偶行加上样式，兼容不支持CSS伪类的场合
            "searching": false, //是否允许Datatables开启本地搜索
            "paging": true, //是否开启本地分页
            "lengthChange": false, //是否允许产品改变表格每页显示的记录数
            "info": false, //控制是否显示表格左下角的信息
            //跟数组下标一样，第一列从0开始，这里表格初始化时，第四列默认降序
            "order": [6, 'desc'], //asc升序   desc降序
            "aoColumnDefs": [{
                "orderable": false,
                "aTargets": [0, 1, 2, 3, 4, 5, 7] // 指定列不参与排序
            }],
            "deferRender": true, //延迟渲染
            //"ajax":"json/device.json",
            "ajax": {
                url: url + '/ic-iot/admin/' + adminId + '/exceptions/page',//users
                type: 'get',
                data: {
                    "startTime": vue.startTime,
                    "endTime": vue.endTime,
                    "deviceName": vue.deviceName,
                    "exceptionType": vue.exceptionType,
                },
                dataType: 'json',
                beforeSend: function (request) {
                    request.setRequestHeader("accessToken", accessToken);
                },
            }, //数据的路径 "http://192.168.5.133:8081/ic-iot/admin/'+adminId+'/devices" /"json/device.json"
            select: { //单击tr选中当前行
                style: 'multi'
            },

            "columns": [{ //定义列
                "data": function (obj) {
                    //debugger;
                    return '<input type="checkbox" class="fly-checkbox" name="sublist" ids=' + obj.exceptionId + '>';
                },
                "sTitle": "<input type='checkbox' class='btn-checkall fly-checkbox'>", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": "deviceName",
                "sTitle": "设备名称", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": "detailTypeInfo",
                "sTitle": "报警原因", //标题
                "sType": 'chinese',
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": function (obj) {
                    if (obj.exceptionType == 0) {
                        return '<u class="btn-showuser" style="color:#fad60d">' + '故障' + '</u>';
                    } else if (obj.exceptionType == 1) {
                        return '<u class="btn-showuser" style="color:red">' + '超限' + '</u>';
                    } else if (obj.exceptionType == 3) {
                        return '<u class="btn-showuser" style="color:#999">' + '离线' + '</u>';
                    }
                },
                "sTitle": "异常类型", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": function (obj) {
                    var time = replaceTime(obj.start / 1000);
                    ;
                    return time;
                },
                "sTitle": "开始时间", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": function (obj) {
                    var time = replaceTime(obj.end / 1000);
                    ;
                    return time;
                },
                "sTitle": "结束时间", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, {
                "data": function (obj) {
                    if (obj.isRead == 0) {
                        return '<span class="label label-success radius">已读</span>';
                    } else {
                        return '<span class="label label-default radius">未读</span>';
                    }
                },
                "sTitle": "已/未读", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }, /!*{
             "data": "address",
             "sTitle": "地址", //标题
             "sType": 'chinese',
             "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
             }, {
             "data": function(obj) {
             return replaceTime(obj.joinTime / 1000);
             },
             "sTitle": "加入时间", //标题
             "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
             }, {
             "data": function(obj) {
             if(obj.status) {
             return '<span class="label label-success radius">已启用</span>';
             } else {
             return '<span class="label label-default radius">已停用</span>';
             }
             },
             "className": "td-status",
             "sTitle": "状态", //标题
             "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
             },*!/ {
                "data": function (obj) {
                    return '<span title="查看" data=' + obj.exceptionId + ' alt=' + obj.deviceId + ' read=' + obj.isRead + ' class="handle-btn handle-btn-edit"><i style="color:#5ebdc7; font-size:20px;" class="layui-icon">&#xe60a;</i></span>';

                    //<span title="启用" class="handle-btn handle-btn-run"><i class="linyer icon-qiyong"></i></span>
                },
                "className": "td-handle",
                "sTitle": "操作", //标题
                "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错
            }]
        });*/
        /**
         * 添加falsh
         */
        $.fn.dataTable.Buttons.swfPath = "js/dataTables/extensions/Buttons/swf/flashExport.swf";
        $.fn.dataTable.Buttons.defaults.dom.container.className = 'tableTools-box';

        //console.log(myTable);
        myTable.buttons().container().appendTo($('.tableTools'));

        /**
         * 选择
         */
        myTable.on('select', function (e, dt, type, index) {
            if (type === 'row') {
                $(myTable.row(index).node()).find('input:checkbox').prop('checked', true);
            }
        });
        /**
         * 取消选择
         */
        myTable.on('deselect', function (e, dt, type, index) {
            if (type === 'row') {
                $(myTable.row(index).node()).find('input:checkbox').prop('checked', false);
            }
        });
        /**
         * 根据表头复选框 选择/取消选择所有行
         */
        $(document).on('click', '#message > thead > tr > th input[type=checkbox],#message > tfoot > tr > th input[type=checkbox]', function () {
            var th_checked = this.checked;
            $('#message').find('tbody > tr').each(function () {
                var row = this;
                if (th_checked) myTable.row(row).select();
                else myTable.row(row).deselect();
            });
        });
        /**
         * 选中/取消选中复选框时 选中/取消选中一行
         */
        $(document).on('click', '#message tbody td input[type=checkbox]', function () {
            var row = $(this).closest('tr').get(0);
            if (!this.checked) myTable.row(row).deselect();
            else myTable.row(row).select();
        });
        $(document).on('click', '#message tbody td', function () {
            var row = $(this).closest('tr').get(0);
        })
    });


    /*用户设备查看*/
    $('.table-sort').on('click', '.handle-btn-edit', function () {
        var exceptionId = $(this).attr("data");
        var deviceId = $(this).attr("alt");
        var read = $(this).attr("read");
        var endTimes = $(this).attr("end");
        var startTimes = $(this).attr("start");
        var username = $(this).html();
        var obj = $(this);
        debugger;
        var href = 'HistoricalRecord.html?deviceId='+deviceId+'&startTimes='+startTimes+'&endTimes='+endTimes;
        var index = layer.open({
            type: 2,
            title: '查看详情',
            fixed: false,
            maxmin: false,
            area: ['100%', '100%'],
            content: href,
        });
        if (read == 1) {
            $(obj).parents("tr").find(".td-handle").prepend('<span title="查看" class="handle-btn handle-btn-edit"><i style="color:#5ebdc7; font-size:20px;" class="layui-icon">&#xe60a;</i></span>');
            $(obj).parents("tr").find(".sorting_1").html('<span class="label label-success radius">已读</span>');
            $(obj).remove();
        }
        $.ajax({
            type: "POST",
            url: url + '/ic-iot/users/' + adminId + '/exceptions/' + exceptionId + '/isRead',
            async: true,
            beforeSend: function (request) {
                request.setRequestHeader("accessToken", accessToken);
            },
            success: function (data) {
                if (data['code'] == 1) {
                    layer.full(index);
                } else {
                    ifajax(data);
                }
            }
        });
    });


    /*用户查询*/
    $("#message_sj").bind('click', function () {
        var startTime = $("#start").val();
        var endTime = $("#end").val();
        $.ajax({
            url: url + '/ic-iot/admin/' + adminId + '/exceptions/page',
            type: 'get',
            data: {
                "currentPage": 1,
                "pageSize": 999,
                "endTime": endTime,
                "startTime": startTime,
            },
            dataType: 'json',
            beforeSend: function (request) {
                request.setRequestHeader("accessToken", accessToken);
            },
            success: function (data) {
                if (data['code'] == 1) {
                    $('#message').dataTable().fnClearTable();
                    $('#message').dataTable().fnAddData(data.result);
                } else {
                    ifajax(data);
                }
            }
        });
    });
//标记已读
    $("#message_bj").on('click', function () {
        var list = [];
        //debugger;
        $.each($('#message tbody tr'), function () {
            if ($(this).hasClass('selected')) {
                var id = $(this).find('input.fly-checkbox').attr('ids');
                list.push(id);
            }
        });
        Str = list.join(",");
        //	console.log(Str);
        $.ajax({
            url: url + '/ic-iot/users/' + adminId + '/exceptions/isRead',
            type: 'POST',
            data: {
                "exceptionIds": Str,
            },
            dataType: 'json',
            beforeSend: function (request) {
                request.setRequestHeader("accessToken", accessToken);
            },
            success: function (data) {
                if (data['code'] == 1) {
                    layer.msg(data['description']);
                    setTimeout(function () {
                        window.location.reload();
                    }, 2000)
                } else {
                    ifajax(data);
                }

            }
        });
    });

    //全部标记已读
    $("#message_qb").bind('click', function () {
        $.ajax({
            url: url + '/ic-iot/users/' + adminId + '/exceptions/all/isRead',
            type: 'POST',
            dataType: 'json',
            beforeSend: function (request) {
                request.setRequestHeader("accessToken", accessToken);
            },
            success: function (data) {
                if (data['code'] == 1) {
                    layer.msg(data['description']);
                    setTimeout(function () {
                        window.location.reload();
                    }, 2000)
                } else {
                    ifajax(data);
                }
            }
        });
    });
    $(".btn_block > label").click(function () {
        $(this).siblings().removeClass("layui-btn-block").addClass("layui-btn-none");
        $(this).addClass("layui-btn-block");
    });

});